package com.tx.service;

import com.tx.entity.Page;
import com.tx.entity.Result;
import com.tx.entity.User;

import javax.mail.MessagingException;
import java.io.IOException;
import java.util.List;
import java.util.Map;

/**
 * @Author: tcx
 * @description: 用户信息业务层接口
 * @Date: 2019/11/4
 **/
public interface UserService {
    /**
    * 用户登录：验证用户名密码
    * */
    User getUser(String username,String password);
    /**
     * 用户注册：添加用户
     * */
    void add(User user);
    /**
     * 用户信息修改：修改头像、个人信息等
     * */
    void edit(User user);
    /**
     * 用户注销：从数据库移除此用户
     * */
    void remove(Integer uId);
    /**
     * 根据用户id获取用户信息
     * */
    User get(Integer uId);
    /**
     * 获取所有用户信息存入list中
     * */
    List<User> getAll();
    /**
     * 根据用户名获取用户信息
     * */
    User getUserByName(String uName);
    /**
     * 根据用户邮箱获取用户信息
     * */
    User getUserByEmail(String uEmail);
    //更新用户头像
    User editHeadImage(User user);
    //分页查询所有用户
    Result getUserByPage(Page page);
    //修改用户昵称
    void editNickName(User user);
    //查询用户密码
    String getPwd(Integer uId);
    //修改密码
    Integer editPwd(Map<String,Object> map);
    /* *
     * @description:  获得用户总数
     * @author tcx
     * @date 2020/1/13
     * @param
     * @return int
     */
    int getAllUser();
    String sendEmail(String email,int flag);

    Integer getTotal(Map<String,Object> map);

    List<User> list(Map<String,Object> map);

    boolean rePwd(String pwd,User user);
}
